Flip-flops are used as building blocks in a variety of sequential logic circuits such as registers. For example, many modern microprocessors use a technique known as pipelining in which the processing of an instruction is broken down into several smaller sub-tasks, each of which can be performed within one clock cycle. Pipelined microprocessors include dedicated circuitry to perform each sub-task, and different instructions are processed at each subtask in a sequential, or pipelined fashion. By using this technique, pipelined microprocessors are able to achieve high effective instruction throughput even though only a portion of any individual instruction is processed per clock cycle in one of the pipeline stages.
Pipelined microprocessors use pipeline registers to store the results of an operation at a particular pipeline stage and provide these results to a subsequent pipeline stage. The speed of a pipelined microprocessor is limited by the amount of time it takes to perform the functions of a pipeline stage as well as to store the results stably in the pipeline register. Thus the speed in which the microprocessor clock can be set at is limited, in part, by the delay through the pipeline register, and hence the flip-flops that make up the pipeline register.
In the following description, the use of the same reference numerals in different drawings indicates similar or identical items. Unless otherwise noted, the word “coupled” and its associated verb forms include both direct connection and indirect connection by means known in the art, and unless otherwise noted any description of direct connection implies alternate embodiments using suitable forms of indirect connection as well.